<?php

if(!isset($_SESSION['player'])){
	header('Location: index.php?p=home');
}

if(	isset(
		$_POST['newPassword'],
		$_POST['confirmNewPassword']
	) ||
	isset(
		$_POST['email'],
		$_POST['localisation'], 
		$_POST['newsletterThreshold']
	)
	){
		
	try {
		
		$emailChanged = FALSE;
		
		$_player = unserialize($_SESSION['player']);

		/* 
		 * Si les champs de changements de mot de passe 
		 * sont renseignés et identiques, on sauvegarde
		 * ce nouveau mot de passe.
		 */
		if(	!empty($_POST['newPassword']) && 
			!empty($_POST['confirmNewPassword']) &&
			$_POST['newPassword'] == $_POST['confirmNewPassword']){
			
			$_player->setPassword($_POST['newPassword']);

		}
		
		/*
		 * Si l'email envoyé est différent de l'email actuel, alors
		 * c'est un changement d'email : un nouveau mot de passe est
		 * alors généré et envoyé par email.
		 */
		if(	!empty($_POST['email']) &&
			$_POST['email'] != $_player->getEmail()){
			
			$password = $_player->generatePassword();
			
			$_player->setEmail($_POST['email']);
			$_player->setPassword($password);
			
			sendEmail(
				$_player->getEmail(),
				TITLE,
				sprintf(
					"Bonjour %s,\n\r".
					"Vous avez modifié votre adresse email.\n\r".
					"Votre nouveau mot de passe est : %s\n\r".
					"Vous pourrez le changer une fois connecté ".
					" à votre espace.\n\r".
					"À bientôt sur %s.",
					$_player->getName(),
					$password,
					APP
				)
			);
			
			$emailChanged = TRUE;

		}
		
		$_player->setNewsletterThreshold($_POST['newsletterThreshold']);
		
		if(	$_POST['localisation'] != $_player->getLocalisation() &&
			Localisation::isValidLocale($_POST['localisation'])){
			
			$_player->setLocalisation($_POST['localisation']);
			$_SESSION['localisation'] = $_POST['localisation'];
			
		}

		if(	$_POST['newsletterThreshold'] != $_player->getNewsletterThreshold() &&
			$_player->isValidNewsletterThreshold($_POST['newsletterThreshold'])){
			
			$_player->setNewsletterThreshold($_POST['newsletterThreshold']);
			
		}
		
		$_player->save();

		$_SESSION['player'] = serialize($_player);

		/* Si l'adresse Email a été changée, on déconnecte le joueur. */
		if($emailChanged){
			
			header("Location: index.php?p=logout");

		}
	
		if(isset($_GET['backTo'])){

			header("Location: index.php?p=".$_GET['backTo']);

		}
		else {
			header("Location: index.php");
		}

		
	}
	catch(Exception $e){
		Log::addException($e);	
	}
	
}

?>